package com.example.dtos.plugin;

import java.time.Instant;
import java.util.List;
import java.util.Map;

import io.swagger.v3.oas.annotations.media.Schema;

/**
 * 插件详情DTO
 */
public record PluginDetailDTO(
    @Schema(description = "插件ID", example = "com.company.data.analysis")
    String id,
    
    @Schema(description = "插件名称", example = "数据分析插件")
    String name,
    
    @Schema(description = "版本号", example = "1.2.0")
    String version,
    
    @Schema(description = "开发者", example = "数据团队")
    String developer,
    
    @Schema(description = "开发者邮箱", example = "data@example.com")
    String email,
    
    @Schema(description = "状态：enabled/disabled", example = "enabled")
    String status,
    
    @Schema(description = "安装时间", example = "2024-05-10T08:30:00Z")
    Instant installTime,
    
    @Schema(description = "更新时间", example = "2024-06-01T14:15:30Z")
    Instant updateTime,
    
    @Schema(description = "兼容版本", example = "1.0.0-2.0.0")
    String compatibleVersion,
    
    @Schema(description = "插件描述", example = "提供高级数据分析和可视化功能")
    String description,
    
    @Schema(description = "插件大小(KB)", example = "1250")
    int size,
    
    @Schema(description = "依赖项列表")
    List<PluginDependencyDTO> dependencies,
    
    @Schema(description = "扩展点列表")
    List<ExtensionPointDTO> extensionPoints,
    
    @Schema(description = "插件配置信息")
    Map<String, Object> config
) {} 